[INFO] cloning repository https://github.com/dale8nson/sound-studies
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dale8nson/sound-studies" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdale8nson%2Fsound-studies", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdale8nson%2Fsound-studies'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6ada7d0d514d8d65164bb3d44727d531604def15
[INFO] fixing dale8nson/sound-studies against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdale8nson%2Fsound-studies" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dale8nson/sound-studies
[INFO] finished tweaking git repo https://github.com/dale8nson/sound-studies
[INFO] tweaked toml for git repo https://github.com/dale8nson/sound-studies written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dale8nson/sound-studies on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dale8nson/sound-studies already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.109
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.109
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.109
[INFO] [stderr]   Downloaded objc2-core-audio-types v0.3.2
[INFO] [stderr]   Downloaded ringbuf v0.4.8
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.59
[INFO] [stderr]   Downloaded objc2-core-audio v0.3.2
[INFO] [stderr]   Downloaded coreaudio-rs v0.14.0
[INFO] [stderr]   Downloaded alsa-sys v0.4.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.109
[INFO] [stderr]   Downloaded alsa v0.11.0
[INFO] [stderr]   Downloaded js-sys v0.3.86
[INFO] [stderr]   Downloaded objc2-avf-audio v0.3.2
[INFO] [stderr]   Downloaded objc2-audio-toolbox v0.3.2
[INFO] [stderr]   Downloaded cpal v0.17.3
[INFO] [stderr]   Downloaded rustfft v6.4.1
[INFO] [stderr]   Downloaded web-sys v0.3.86
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e6e8b606bcb448b378a61ae879db4ed0c0c8eacc500cc7550615539ce2439744
[INFO] running `Command { std: "docker" "start" "e6e8b606bcb448b378a61ae879db4ed0c0c8eacc500cc7550615539ce2439744", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e6e8b606bcb448b378a61ae879db4ed0c0c8eacc500cc7550615539ce2439744" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e6e8b606bcb448b378a61ae879db4ed0c0c8eacc500cc7550615539ce2439744", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e6e8b606bcb448b378a61ae879db4ed0c0c8eacc500cc7550615539ce2439744" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling alsa-sys v0.4.0
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling cpal v0.17.3
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]    Compiling macros v0.1.0 (/opt/rustwide/workdir/macros)
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling libusb1-sys v0.7.0
[INFO] [stderr]     Checking ringbuf v0.4.8
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]    Compiling rusb v0.9.4
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stdout] warning: unused import: `std::cell::LazyCell`
[INFO] [stdout]  --> macros/src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::LazyCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ident`, `Punct`, and `TokenTree`
[INFO] [stdout]  --> macros/src/lib.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use proc_macro::{Ident, Punct, TokenStream, TokenTree};
[INFO] [stdout]   |                  ^^^^^  ^^^^^               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `major_scale`
[INFO] [stdout]   --> macros/src/lib.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let major_scale = vec![2, 2, 1, 2, 2, 2, 1];
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_major_scale`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `harmonic_minor_scale`
[INFO] [stdout]   --> macros/src/lib.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let harmonic_minor_scale = vec![2, 1, 2, 2, 1, 3, 1];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_harmonic_minor_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `melodic_minor_scale_ascending`
[INFO] [stdout]   --> macros/src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let melodic_minor_scale_ascending = vec![2, 1, 2, 2, 2, 2, 1];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_melodic_minor_scale_ascending`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `melodic_minor_scale_descending`
[INFO] [stdout]   --> macros/src/lib.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let melodic_minor_scale_descending = vec![2, 2, 1, 2, 2, 1, 2];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_melodic_minor_scale_descending`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `order_of_flats`
[INFO] [stdout]   --> macros/src/lib.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let order_of_flats = order_of_sharps
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_order_of_flats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `major_sharp_keys`
[INFO] [stdout]   --> macros/src/lib.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let major_sharp_keys = note_names_sharp
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_major_sharp_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `major_flat_keys`
[INFO] [stdout]   --> macros/src/lib.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let major_flat_keys = note_names_flat
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_major_flat_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minor_sharp_keys`
[INFO] [stdout]   --> macros/src/lib.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let minor_sharp_keys = note_names_sharp
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minor_sharp_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minor_flat_keys`
[INFO] [stdout]   --> macros/src/lib.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let minor_flat_keys = note_names_flat
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minor_flat_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `note` is never used
[INFO] [stdout]  --> macros/src/lib.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn note(n: f32) -> f32 {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking quote v1.0.44
[INFO] [stderr]     Checking bimap v0.6.3
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking pest v2.8.6
[INFO] [stdout] warning: unused import: `std::cell::LazyCell`
[INFO] [stdout]  --> macros/src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::LazyCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ident`, `Punct`, and `TokenTree`
[INFO] [stdout]  --> macros/src/lib.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use proc_macro::{Ident, Punct, TokenStream, TokenTree};
[INFO] [stdout]   |                  ^^^^^  ^^^^^               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::LazyCell`
[INFO] [stdout]  --> macros/src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::LazyCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ident`, `Punct`, and `TokenTree`
[INFO] [stdout]  --> macros/src/lib.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use proc_macro::{Ident, Punct, TokenStream, TokenTree};
[INFO] [stdout]   |                  ^^^^^  ^^^^^               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `major_scale`
[INFO] [stdout]   --> macros/src/lib.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let major_scale = vec![2, 2, 1, 2, 2, 2, 1];
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_major_scale`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `harmonic_minor_scale`
[INFO] [stdout]   --> macros/src/lib.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let harmonic_minor_scale = vec![2, 1, 2, 2, 1, 3, 1];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_harmonic_minor_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `melodic_minor_scale_ascending`
[INFO] [stdout]   --> macros/src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let melodic_minor_scale_ascending = vec![2, 1, 2, 2, 2, 2, 1];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_melodic_minor_scale_ascending`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `melodic_minor_scale_descending`
[INFO] [stdout]   --> macros/src/lib.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let melodic_minor_scale_descending = vec![2, 2, 1, 2, 2, 1, 2];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_melodic_minor_scale_descending`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `order_of_flats`
[INFO] [stdout]   --> macros/src/lib.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let order_of_flats = order_of_sharps
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_order_of_flats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `major_sharp_keys`
[INFO] [stdout]   --> macros/src/lib.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let major_sharp_keys = note_names_sharp
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_major_sharp_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `major_flat_keys`
[INFO] [stdout]   --> macros/src/lib.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let major_flat_keys = note_names_flat
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_major_flat_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minor_sharp_keys`
[INFO] [stdout]   --> macros/src/lib.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let minor_sharp_keys = note_names_sharp
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minor_sharp_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minor_flat_keys`
[INFO] [stdout]   --> macros/src/lib.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let minor_flat_keys = note_names_flat
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minor_flat_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `note` is never used
[INFO] [stdout]  --> macros/src/lib.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn note(n: f32) -> f32 {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `major_scale`
[INFO] [stdout]   --> macros/src/lib.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let major_scale = vec![2, 2, 1, 2, 2, 2, 1];
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_major_scale`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `harmonic_minor_scale`
[INFO] [stdout]   --> macros/src/lib.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let harmonic_minor_scale = vec![2, 1, 2, 2, 1, 3, 1];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_harmonic_minor_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `melodic_minor_scale_ascending`
[INFO] [stdout]   --> macros/src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let melodic_minor_scale_ascending = vec![2, 1, 2, 2, 2, 2, 1];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_melodic_minor_scale_ascending`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `melodic_minor_scale_descending`
[INFO] [stdout]   --> macros/src/lib.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let melodic_minor_scale_descending = vec![2, 2, 1, 2, 2, 1, 2];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_melodic_minor_scale_descending`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `order_of_flats`
[INFO] [stdout]   --> macros/src/lib.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let order_of_flats = order_of_sharps
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_order_of_flats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `major_sharp_keys`
[INFO] [stdout]   --> macros/src/lib.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let major_sharp_keys = note_names_sharp
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_major_sharp_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `major_flat_keys`
[INFO] [stdout]   --> macros/src/lib.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let major_flat_keys = note_names_flat
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_major_flat_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minor_sharp_keys`
[INFO] [stdout]   --> macros/src/lib.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let minor_sharp_keys = note_names_sharp
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minor_sharp_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minor_flat_keys`
[INFO] [stdout]   --> macros/src/lib.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let minor_flat_keys = note_names_flat
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minor_flat_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `note` is never used
[INFO] [stdout]  --> macros/src/lib.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn note(n: f32) -> f32 {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ndarray v0.17.2
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]     Checking alsa v0.11.0
[INFO] [stderr]     Checking midly v0.5.3
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]     Checking music-box v0.1.0 (/opt/rustwide/workdir/music-box)
[INFO] [stderr]     Checking compiler v0.1.0 (/opt/rustwide/workdir/compiler)
[INFO] [stdout] warning: unused imports: `Producer`, `Split`, and `StaticRb`
[INFO] [stdout]   --> music-box/src/player.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     SharedRb, StaticRb,
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 13 |     storage::Owning,
[INFO] [stdout] 14 |     traits::{Consumer, Producer, Split},
[INFO] [stdout]    |                        ^^^^^^^^  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mutex`, `RwLock`, and `Sender`
[INFO] [stdout]   --> music-box/src/player.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 |         Arc, LazyLock, Mutex, RwLock,
[INFO] [stdout]    |                        ^^^^^  ^^^^^^
[INFO] [stdout] 20 |         atomic::AtomicU32,
[INFO] [stdout] 21 |         mpsc::{Receiver, Sender},
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::LazyCell`
[INFO] [stdout]  --> music-box/src/synth.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cell::LazyCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> music-box/src/synth.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Receiver`
[INFO] [stdout]  --> music-box/src/synth.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::mpsc::{Receiver, SendError, Sender};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `atomic::AtomicU32`
[INFO] [stdout]   --> music-box/src/synth.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 |     sync::{LazyLock, atomic::AtomicU32, mpsc::channel},
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Observer`
[INFO] [stdout]   --> music-box/src/synth.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | use ringbuf::traits::{Observer, Producer};
[INFO] [stdout]    |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]   --> music-box/src/main.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 |     sync::{Arc, Mutex, mpsc::channel},
[INFO] [stdout]    |            ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Producer`, `Split`, and `StaticRb`
[INFO] [stdout]   --> music-box/src/player.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     SharedRb, StaticRb,
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 13 |     storage::Owning,
[INFO] [stdout] 14 |     traits::{Consumer, Producer, Split},
[INFO] [stdout]    |                        ^^^^^^^^  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mutex`, `RwLock`, and `Sender`
[INFO] [stdout]   --> music-box/src/player.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 |         Arc, LazyLock, Mutex, RwLock,
[INFO] [stdout]    |                        ^^^^^  ^^^^^^
[INFO] [stdout] 20 |         atomic::AtomicU32,
[INFO] [stdout] 21 |         mpsc::{Receiver, Sender},
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::LazyCell`
[INFO] [stdout]  --> music-box/src/synth.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cell::LazyCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> music-box/src/synth.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Receiver`
[INFO] [stdout]  --> music-box/src/synth.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::mpsc::{Receiver, SendError, Sender};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `atomic::AtomicU32`
[INFO] [stdout]   --> music-box/src/synth.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 |     sync::{LazyLock, atomic::AtomicU32, mpsc::channel},
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Observer`
[INFO] [stdout]   --> music-box/src/synth.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | use ringbuf::traits::{Observer, Producer};
[INFO] [stdout]    |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]   --> music-box/src/main.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 |     sync::{Arc, Mutex, mpsc::channel},
[INFO] [stdout]    |            ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `gs` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:185:73
[INFO] [stdout]     |
[INFO] [stdout] 185 | ...                   Exp::Compound(Compound::Parens(exps.zip(gs)))
[INFO] [stdout]     |                                                               ^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `compound` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:189:25
[INFO] [stdout]     |
[INFO] [stdout] 189 |                         compound(transform_exps(exps, f))
[INFO] [stdout]     |                         ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this unit variant
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::Rule::compound;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `n` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:300:71
[INFO] [stdout]     |
[INFO] [stdout] 300 |                 Sign::Plus => self.compose_absolute(Absolute::Integer(n + val), ctx),
[INFO] [stdout]     |                                                                       ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `idx` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:335:31
[INFO] [stdout]     |
[INFO] [stdout] 335 |         if let Ctx::Idx(id) = idx {
[INFO] [stdout]     |                               ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `idx` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:341:31
[INFO] [stdout]     |
[INFO] [stdout] 341 |         if let Ctx::Idx(id) = idx {
[INFO] [stdout]     |                               ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Div`, `Mul`, `Rem`, `Sub`, and `default`
[INFO] [stdout]  --> compiler/src/compiler/ast.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     default,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 3 |     ops::{Add, Div, Mul, Rem, Sub},
[INFO] [stdout]   |                ^^^  ^^^  ^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `TrackEventKind`, `Track`, `u24`, and `u28`
[INFO] [stdout]  --> compiler/src/compiler/codegen.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Header, MetaMessage, MidiMessage, Smf, Track, TrackEvent, TrackEventKind,
[INFO] [stdout]   |     ^^^^^^                                 ^^^^^              ^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     num::{u24, u28},
[INFO] [stdout]   |           ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `*`
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:51:34
[INFO] [stdout]    |
[INFO] [stdout] 51 |         ast::{utils::abs_to_f64, *},
[INFO] [stdout]    |                                  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:94:42
[INFO] [stdout]    |
[INFO] [stdout] 94 |         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout]    |                                          ^    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 94 -         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout] 94 +         iter_1.zip(iter_2).cloned().map(|item | f(item)).collect()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::ops::{Index, IndexMut};
[INFO] [stdout]    |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `set_error_detail`
[INFO] [stdout]  --> compiler/src/pest_parser.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     set_error_detail,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ast::*` and `composer::Composer`
[INFO] [stdout]  --> compiler/src/main.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compiler::{ast::*, composer::Composer};
[INFO] [stdout]   |                       ^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1`, `Ix1`, and `array`
[INFO] [stdout]  --> compiler/src/main.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Ix1, array};
[INFO] [stdout]   |               ^^^^^^  ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::gcd`
[INFO] [stdout]   --> compiler/src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_integer::gcd;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut`, `Index`, `iter::IntoIterator`, and `str::FromStr`
[INFO] [stdout]   --> compiler/src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     iter::IntoIterator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     ops::{Index, IndexMut},
[INFO] [stdout]    |           ^^^^^  ^^^^^^^^
[INFO] [stdout] 15 |     str::FromStr,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0204]: the trait `Copy` cannot be implemented for this type
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, Copy)]
[INFO] [stdout]    |                        ---- in this derive macro expansion
[INFO] [stdout] 24 | pub enum Exp {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 25 |     Simple(Simple),
[INFO] [stdout]    |            ------ this field does not implement `Copy`
[INFO] [stdout] 26 |     Compound(Compound),
[INFO] [stdout]    |              -------- this field does not implement `Copy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `ast::Compound` to `ast::Simple`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:62:40
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 Exp::Compound(c) => s1 + c,
[INFO] [stdout]    |                                     -- ^ - ast::Compound
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     ast::Simple
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `Add<ast::Compound>` might be missing for `ast::Simple`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:95:1
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub enum Simple {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ must implement `Add<ast::Compound>`
[INFO] [stdout] note: the trait `Add` must be implemented
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:76:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `ast::Simple` to `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:66:38
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 Exp::Simple(s) => c1 + s,
[INFO] [stdout]    |                                   -- ^ - ast::Simple
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   ast::Compound
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `Add<ast::Simple>` might be missing for `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub enum Compound {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^ must implement `Add<ast::Simple>`
[INFO] [stdout] note: the trait `Add` must be implemented
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:76:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `ast::Compound` to `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:67:41
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 Exp::Compound(c2) => c1 + c2,
[INFO] [stdout]    |                                      -- ^ -- ast::Compound
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      ast::Compound
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `Add` might be missing for `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub enum Compound {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^ must implement `Add`
[INFO] [stdout] note: the trait `Add` must be implemented
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:76:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ast::Absolute: Default` is not satisfied
[INFO] [stdout]    --> compiler/src/compiler/ast.rs:76:23
[INFO] [stdout]     |
[INFO] [stdout]  75 | #[derive(Debug, Clone, Default)]
[INFO] [stdout]     |                        ------- in this derive macro expansion
[INFO] [stdout]  76 | pub struct Fractional(pub Absolute);
[INFO] [stdout]     |                       ^^^^^^^^^^^^ the trait `Default` is not implemented for `ast::Absolute`
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `ast::Absolute` with `#[derive(Default)]`
[INFO] [stdout]     |
[INFO] [stdout] 179 + #[derive(Default)]
[INFO] [stdout] 180 | pub enum Absolute {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0618]: expected function, found `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:80:39
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     compound @ Compound::Parens(exps)
[INFO] [stdout]    |                     --------------------------------- `compound` has type `ast::Compound`
[INFO] [stdout] ...
[INFO] [stdout] 80 |                         Exp::Compound(compound(transform_exps(exps, f)))
[INFO] [stdout]    |                                       ^^^^^^^^-------------------------
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       call expression requires function
[INFO] [stdout]    |
[INFO] [stdout]   ::: compiler/src/pest_parser.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(PestParser)]
[INFO] [stdout]    |          ---------- this function of the same name is available here, but it's shadowed by the local binding
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `Zip<Iter<'_, T>, Cycle<Iter<'_, U>>>` to be an iterator that yields `&_`, but it yields `(&T, &U)`
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:94:28
[INFO] [stdout]    |
[INFO] [stdout] 94 |         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout]    |                            ^^^^^^ expected `&_`, found `(&T, &U)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&_`
[INFO] [stdout]                   found tuple `(&T, &U)`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:92:29
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let mut iter_1 = v1.iter();
[INFO] [stdout]    |                          -- ^^^^^^ `Iterator::Item` is `&T` here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          this expression has type `Vec<T>`
[INFO] [stdout] 93 |         let mut iter_2 = v2.iter().cycle();
[INFO] [stdout] 94 |         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout]    |                ----------- `Iterator::Item` changed to `(&T, &U)` here
[INFO] [stdout] note: required by a bound in `cloned`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/iter/traits/iterator.rs:3559:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx2`
[INFO] [stdout]   --> music-box/src/main.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 |                     .for_each(|(idx2, duration_2)| {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_idx2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx2`
[INFO] [stdout]   --> music-box/src/main.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         |(idx2, duration_2)| {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_idx2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch_count`
[INFO] [stdout]   --> music-box/src/main.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let pitch_count = PITCHES.iter().len();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t3`
[INFO] [stdout]    --> music-box/src/main.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let t3 = thread::spawn(move || {
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_t3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Sample`, `Volume`, and `GetVolume` are never constructed
[INFO] [stdout]   --> music-box/src/msg.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub enum Msg {
[INFO] [stdout]    |          --- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  8 |     Sample(f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  9 |     Volume(f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 10 |     GetVolume,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `volume` and `key` are never read
[INFO] [stdout]   --> music-box/src/synth.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Synth {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 41 |     note_mask: BitSet,
[INFO] [stdout] 42 |     volume: f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 43 |     phases: Vec<Vec<f32>>,
[INFO] [stdout] 44 |     key: Key,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Synth` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `volume` and `set_volume` are never used
[INFO] [stdout]   --> music-box/src/synth.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Synth {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 48 |     pub fn volume(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn set_volume(&mut self, vol: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> music-box/src/main.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 | ...                   tx1.send(NoteOff(p1));
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |                             let _ = tx1.send(NoteOff(p1));
[INFO] [stdout]    |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> music-box/src/main.rs:61:29
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...                   tx1.send(NoteOff(p2));
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                             let _ = tx1.send(NoteOff(p2));
[INFO] [stdout]    |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> music-box/src/main.rs:94:25
[INFO] [stdout]    |
[INFO] [stdout] 94 |                         tx2.send(NoteOff(p1));
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 |                         let _ = tx2.send(NoteOff(p1));
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> music-box/src/main.rs:95:25
[INFO] [stdout]    |
[INFO] [stdout] 95 |                         tx2.send(NoteOff(p2));
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |                         let _ = tx2.send(NoteOff(p2));
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx2`
[INFO] [stdout]   --> music-box/src/main.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 |                     .for_each(|(idx2, duration_2)| {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_idx2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx2`
[INFO] [stdout]   --> music-box/src/main.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         |(idx2, duration_2)| {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_idx2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch_count`
[INFO] [stdout]   --> music-box/src/main.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let pitch_count = PITCHES.iter().len();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t3`
[INFO] [stdout]    --> music-box/src/main.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let t3 = thread::spawn(move || {
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_t3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Sample`, `Volume`, and `GetVolume` are never constructed
[INFO] [stdout]   --> music-box/src/msg.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub enum Msg {
[INFO] [stdout]    |          --- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  8 |     Sample(f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  9 |     Volume(f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 10 |     GetVolume,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `volume` and `key` are never read
[INFO] [stdout]   --> music-box/src/synth.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Synth {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 41 |     note_mask: BitSet,
[INFO] [stdout] 42 |     volume: f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 43 |     phases: Vec<Vec<f32>>,
[INFO] [stdout] 44 |     key: Key,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Synth` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `volume` and `set_volume` are never used
[INFO] [stdout]   --> music-box/src/synth.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Synth {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 48 |     pub fn volume(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn set_volume(&mut self, vol: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `map` exists for struct `Cloned<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:94:37
[INFO] [stdout]    |
[INFO] [stdout] 94 |         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout]    |                                     ^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>> as Iterator>::Item = &_`
[INFO] [stdout]            which is required by `Cloned<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>>>: Iterator`
[INFO] [stdout]            `Cloned<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>>>: Iterator`
[INFO] [stdout]            which is required by `&mut Cloned<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>>>: Iterator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `codegen::Velocity` doesn't implement `Debug`
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Debug, Default)]
[INFO] [stdout]    |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 24 |     velocities: Vec<Velocity>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `codegen::Velocity`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Debug` is implemented for `Vec<T, A>`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:4315:0
[INFO] [stdout] help: consider annotating `codegen::Velocity` with `#[derive(Debug)]`
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 + #[derive(Debug)]
[INFO] [stdout] 14 | pub struct Velocity(u8);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `compose_exps` in this scope
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let f = compose_exps(es, f, ctx);
[INFO] [stdout]    |                 ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider using the method on `Self`
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let f = self.compose_exps(es, f, ctx);
[INFO] [stdout]    |                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `compose_exp` in this scope
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:58:34
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 Some(exp) => f = compose_exp(exp, f, ctx),
[INFO] [stdout]    |                                  ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider using the method on `Self`
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 Some(exp) => f = self.compose_exp(exp, f, ctx),
[INFO] [stdout]    |                                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> music-box/src/main.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 | ...                   tx1.send(NoteOff(p1));
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |                             let _ = tx1.send(NoteOff(p1));
[INFO] [stdout]    |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> music-box/src/main.rs:61:29
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...                   tx1.send(NoteOff(p2));
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                             let _ = tx1.send(NoteOff(p2));
[INFO] [stdout]    |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> music-box/src/main.rs:94:25
[INFO] [stdout]    |
[INFO] [stdout] 94 |                         tx2.send(NoteOff(p1));
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 |                         let _ = tx2.send(NoteOff(p1));
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> music-box/src/main.rs:95:25
[INFO] [stdout]    |
[INFO] [stdout] 95 |                         tx2.send(NoteOff(p2));
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |                         let _ = tx2.send(NoteOff(p2));
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `gs` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:185:73
[INFO] [stdout]     |
[INFO] [stdout] 185 | ...                   Exp::Compound(Compound::Parens(exps.zip(gs)))
[INFO] [stdout]     |                                                               ^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `compound` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:189:25
[INFO] [stdout]     |
[INFO] [stdout] 189 |                         compound(transform_exps(exps, f))
[INFO] [stdout]     |                         ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this unit variant
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::Rule::compound;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `n` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:300:71
[INFO] [stdout]     |
[INFO] [stdout] 300 |                 Sign::Plus => self.compose_absolute(Absolute::Integer(n + val), ctx),
[INFO] [stdout]     |                                                                       ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `idx` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:335:31
[INFO] [stdout]     |
[INFO] [stdout] 335 |         if let Ctx::Idx(id) = idx {
[INFO] [stdout]     |                               ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `idx` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:341:31
[INFO] [stdout]     |
[INFO] [stdout] 341 |         if let Ctx::Idx(id) = idx {
[INFO] [stdout]     |                               ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Div`, `Mul`, `Rem`, `Sub`, and `default`
[INFO] [stdout]  --> compiler/src/compiler/ast.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     default,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 3 |     ops::{Add, Div, Mul, Rem, Sub},
[INFO] [stdout]   |                ^^^  ^^^  ^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `TrackEventKind`, `Track`, `u24`, and `u28`
[INFO] [stdout]  --> compiler/src/compiler/codegen.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Header, MetaMessage, MidiMessage, Smf, Track, TrackEvent, TrackEventKind,
[INFO] [stdout]   |     ^^^^^^                                 ^^^^^              ^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     num::{u24, u28},
[INFO] [stdout]   |           ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `*`
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:51:34
[INFO] [stdout]    |
[INFO] [stdout] 51 |         ast::{utils::abs_to_f64, *},
[INFO] [stdout]    |                                  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:94:42
[INFO] [stdout]    |
[INFO] [stdout] 94 |         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout]    |                                          ^    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 94 -         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout] 94 +         iter_1.zip(iter_2).cloned().map(|item | f(item)).collect()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::ops::{Index, IndexMut};
[INFO] [stdout]    |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `set_error_detail`
[INFO] [stdout]  --> compiler/src/pest_parser.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     set_error_detail,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `compose_primitve` found for mutable reference `&mut Composer<'a>` in the current scope
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:93:47
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     let f: F<Exp, Exp> = self.compose_primitve(pre, ctx);
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `compose_primitive` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     let f: F<Exp, Exp> = self.compose_primitive(pre, ctx);
[INFO] [stdout]    |                                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ast::*` and `composer::Composer`
[INFO] [stdout]  --> compiler/src/main.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compiler::{ast::*, composer::Composer};
[INFO] [stdout]   |                       ^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1`, `Ix1`, and `array`
[INFO] [stdout]  --> compiler/src/main.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Ix1, array};
[INFO] [stdout]   |               ^^^^^^  ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::gcd`
[INFO] [stdout]   --> compiler/src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use num_integer::gcd;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut`, `Index`, `iter::IntoIterator`, and `str::FromStr`
[INFO] [stdout]   --> compiler/src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     iter::IntoIterator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     ops::{Index, IndexMut},
[INFO] [stdout]    |           ^^^^^  ^^^^^^^^
[INFO] [stdout] 15 |     str::FromStr,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `compose_primitve` found for mutable reference `&mut Composer<'a>` in the current scope
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:97:47
[INFO] [stdout]    |
[INFO] [stdout] 97 |                     let f: F<Exp, Exp> = self.compose_primitve(suf, ctx);
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `compose_primitive` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 97 |                     let f: F<Exp, Exp> = self.compose_primitive(suf, ctx);
[INFO] [stdout]    |                                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `compose_duration` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:131:47
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 let f: F<'static, Exp, Exp> = compose_duration(d, ctx);
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider using the method on `Self`
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 let f: F<'static, Exp, Exp> = self.compose_duration(d, ctx);
[INFO] [stdout]     |                                               +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `codegen::Ctx`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:148:50
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 let tempo: Upb = self.tempos[ctx.0];
[INFO] [stdout]     |                                                  ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `zip` found for struct `Vec<ast::Exp>` in the current scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:185:69
[INFO] [stdout]     |
[INFO] [stdout] 185 | ...                   Exp::Compound(Compound::Parens(exps.zip(gs)))
[INFO] [stdout]     |                                                           ^^^ `Vec<ast::Exp>` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout] help: call `.into_iter()` first
[INFO] [stdout]     |
[INFO] [stdout] 185 |                                 Exp::Compound(Compound::Parens(exps.into_iter().zip(gs)))
[INFO] [stdout]     |                                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0204]: the trait `Copy` cannot be implemented for this type
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, Copy)]
[INFO] [stdout]    |                        ---- in this derive macro expansion
[INFO] [stdout] 24 | pub enum Exp {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 25 |     Simple(Simple),
[INFO] [stdout]    |            ------ this field does not implement `Copy`
[INFO] [stdout] 26 |     Compound(Compound),
[INFO] [stdout]    |              -------- this field does not implement `Copy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:219:41
[INFO] [stdout]     |
[INFO] [stdout] 219 |   ...                   )))) => {
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 220 | | ...                       self.pc(ctx, Pc(int as u8));
[INFO] [stdout] 221 | | ...                   }
[INFO] [stdout]     | |_______________________^ expected `Exp`, found `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0618]: expected function, found `ast::Compound`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:224:29
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         compound @ Compound::Braces(exps)
[INFO] [stdout]     |                         --------------------------------- `compound` has type `ast::Compound`
[INFO] [stdout] ...
[INFO] [stdout] 224 |                             compound(transform_exps(exps, g))
[INFO] [stdout]     |                             ^^^^^^^^-------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             call expression requires function
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/pest_parser.rs:9:10
[INFO] [stdout]     |
[INFO] [stdout]   9 | #[derive(PestParser)]
[INFO] [stdout]     |          ---------- this function of the same name is available here, but it's shadowed by the local binding
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `g` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:252:55
[INFO] [stdout]     |
[INFO] [stdout] 252 |                         compound(transform_exps(exps, g(exp)))
[INFO] [stdout]     |                                                       ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0618]: expected function, found `ast::Compound`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:252:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |                     compound @ Compound::Parens(exps)
[INFO] [stdout]     |                     --------------------------------- `compound` has type `ast::Compound`
[INFO] [stdout] ...
[INFO] [stdout] 252 |                         compound(transform_exps(exps, g(exp)))
[INFO] [stdout]     |                         ^^^^^^^^------------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         call expression requires function
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/pest_parser.rs:9:10
[INFO] [stdout]     |
[INFO] [stdout]   9 | #[derive(PestParser)]
[INFO] [stdout]     |          ---------- this function of the same name is available here, but it's shadowed by the local binding
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:274:54
[INFO] [stdout]     |
[INFO] [stdout] 274 |           let f: F<'static, Exp, Exp> = Box::new(|exp| {
[INFO] [stdout]     |  ______________________________________________________^
[INFO] [stdout] 275 | |             let ident = node.0;
[INFO] [stdout] 276 | |         });
[INFO] [stdout]     | |_________^ expected `Exp`, found `()`
[INFO] [stdout]     |
[INFO] [stdout] help: consider returning the local binding `exp`
[INFO] [stdout]     |
[INFO] [stdout] 275 ~             let ident = node.0;
[INFO] [stdout] 276 +             exp
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:273:59
[INFO] [stdout]     |
[INFO] [stdout] 273 |     fn compose_ident(&mut self, node: Ident, ctx: Ctx) -> F<'static, Exp, Exp> {
[INFO] [stdout]     |        -------------                                      ^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn FnMut(Exp) -> Exp>`, found `()`
[INFO] [stdout]     |        |
[INFO] [stdout]     |        implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn FnMut(ast::Exp) -> ast::Exp + 'static)>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] help: consider returning the local binding `f`
[INFO] [stdout]     |
[INFO] [stdout] 276 ~         });
[INFO] [stdout] 277 +         f
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot subtract `u64` from `ast::Exp`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:301:52
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 Sign::Minus => Box::new(move |n| n - val),
[INFO] [stdout]     |                                                  - ^ --- u64
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  ast::Exp
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Sub<u64>` might be missing for `ast::Exp`
[INFO] [stdout]    --> compiler/src/compiler/ast.rs:24:1
[INFO] [stdout]     |
[INFO] [stdout]  24 | pub enum Exp {
[INFO] [stdout]     | ^^^^^^^^^^^^ must implement `Sub<u64>`
[INFO] [stdout] note: the trait `Sub` must be implemented
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:188:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:304:53
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 Sign::Plus => Box::new(move |n| n + val),
[INFO] [stdout]     |                                                 -   ^^^ expected `Exp`, found `f64`
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 expected because this is `ast::Exp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot subtract `f64` from `ast::Exp`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:305:52
[INFO] [stdout]     |
[INFO] [stdout] 305 |                 Sign::Minus => Box::new(move |n| n - val),
[INFO] [stdout]     |                                                  - ^ --- f64
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  ast::Exp
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Sub<f64>` might be missing for `ast::Exp`
[INFO] [stdout]    --> compiler/src/compiler/ast.rs:24:1
[INFO] [stdout]     |
[INFO] [stdout]  24 | pub enum Exp {
[INFO] [stdout]     | ^^^^^^^^^^^^ must implement `Sub<f64>`
[INFO] [stdout] note: the trait `Sub` must be implemented
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:188:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `std::slice::Iter<'_, u8>` cannot be dereferenced
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:348:62
[INFO] [stdout]     |
[INFO] [stdout] 348 |             self.instruments[id] = Instrument(Vec::from_iter(*instrument.as_bytes().iter()));
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[Vec<codegen::Ctx>]` cannot be indexed by `codegen::Ctx`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:375:23
[INFO] [stdout]     |
[INFO] [stdout] 375 |         self.children[parent].push(idx);
[INFO] [stdout]     |                       ^^^^^^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `SliceIndex<[Vec<codegen::Ctx>]>` is not implemented for `codegen::Ctx`
[INFO] [stdout]    --> compiler/src/compiler/codegen.rs:26:1
[INFO] [stdout]     |
[INFO] [stdout]  26 | pub enum Ctx {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Vec<Vec<codegen::Ctx>>` to implement `std::ops::Index<codegen::Ctx>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0600]: cannot apply unary operator `-` to type `u8`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:379:26
[INFO] [stdout]     |
[INFO] [stdout] 379 |         self.pcs.push(Pc(-1));
[INFO] [stdout]     |                          ^^ cannot apply unary operator `-`
[INFO] [stdout]     |
[INFO] [stdout]     = note: unsigned values cannot be negated
[INFO] [stdout] help: you may have meant the maximum value of `u8`
[INFO] [stdout]     |
[INFO] [stdout] 379 -         self.pcs.push(Pc(-1));
[INFO] [stdout] 379 +         self.pcs.push(Pc(u8::MAX));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:379:23
[INFO] [stdout]     |
[INFO] [stdout] 379 |         self.pcs.push(Pc(-1));
[INFO] [stdout]     |                  ---- ^^^^^^ expected `Vec<Pc>`, found `Pc`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<codegen::Pc>`
[INFO] [stdout]                found struct `codegen::Pc`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:1003:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:383:30
[INFO] [stdout]     |
[INFO] [stdout] 383 |         self.velocities.push(Velocity(0));
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> compiler/src/compiler/codegen.rs:13:21
[INFO] [stdout]     |
[INFO] [stdout]  13 | pub struct Velocity(u8);
[INFO] [stdout]     |                     ^^ private field
[INFO] [stdout] help: consider making the field publicly accessible
[INFO] [stdout]    --> compiler/src/compiler/codegen.rs:13:21
[INFO] [stdout]     |
[INFO] [stdout]  13 | pub struct Velocity(pub u8);
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<u8>` cannot be built from an iterator over elements of type `&u8`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:385:56
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .push(Instrument("Piano".as_bytes().iter().collect()));
[INFO] [stdout]     |                                                        ^^^^^^^ value of type `Vec<u8>` cannot be built from `std::iter::Iterator<Item=&u8>`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `FromIterator<&_>` is not implemented for `Vec<u8>`
[INFO] [stdout]       but trait `FromIterator<_>` is implemented for it
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:3935:0
[INFO] [stdout]     = help: for that trait implementation, expected `u8`, found `&u8`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/iter/traits/iterator.rs:2077:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `ast::Compound` to `ast::Simple`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:62:40
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 Exp::Compound(c) => s1 + c,
[INFO] [stdout]    |                                     -- ^ - ast::Compound
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     ast::Simple
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `Add<ast::Compound>` might be missing for `ast::Simple`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:95:1
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub enum Simple {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ must implement `Add<ast::Compound>`
[INFO] [stdout] note: the trait `Add` must be implemented
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:76:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `ast::Simple` to `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:66:38
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 Exp::Simple(s) => c1 + s,
[INFO] [stdout]    |                                   -- ^ - ast::Simple
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   ast::Compound
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `Add<ast::Simple>` might be missing for `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub enum Compound {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^ must implement `Add<ast::Simple>`
[INFO] [stdout] note: the trait `Add` must be implemented
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:76:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `ast::Compound` to `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:67:41
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 Exp::Compound(c2) => c1 + c2,
[INFO] [stdout]    |                                      -- ^ -- ast::Compound
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      ast::Compound
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `Add` might be missing for `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/ast.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub enum Compound {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^ must implement `Add`
[INFO] [stdout] note: the trait `Add` must be implemented
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:76:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ast::Absolute: Default` is not satisfied
[INFO] [stdout]    --> compiler/src/compiler/ast.rs:76:23
[INFO] [stdout]     |
[INFO] [stdout]  75 | #[derive(Debug, Clone, Default)]
[INFO] [stdout]     |                        ------- in this derive macro expansion
[INFO] [stdout]  76 | pub struct Fractional(pub Absolute);
[INFO] [stdout]     |                       ^^^^^^^^^^^^ the trait `Default` is not implemented for `ast::Absolute`
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `ast::Absolute` with `#[derive(Default)]`
[INFO] [stdout]     |
[INFO] [stdout] 179 + #[derive(Default)]
[INFO] [stdout] 180 | pub enum Absolute {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0618]: expected function, found `ast::Compound`
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:80:39
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     compound @ Compound::Parens(exps)
[INFO] [stdout]    |                     --------------------------------- `compound` has type `ast::Compound`
[INFO] [stdout] ...
[INFO] [stdout] 80 |                         Exp::Compound(compound(transform_exps(exps, f)))
[INFO] [stdout]    |                                       ^^^^^^^^-------------------------
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       call expression requires function
[INFO] [stdout]    |
[INFO] [stdout]   ::: compiler/src/pest_parser.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(PestParser)]
[INFO] [stdout]    |          ---------- this function of the same name is available here, but it's shadowed by the local binding
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `Zip<Iter<'_, T>, Cycle<Iter<'_, U>>>` to be an iterator that yields `&_`, but it yields `(&T, &U)`
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:94:28
[INFO] [stdout]    |
[INFO] [stdout] 94 |         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout]    |                            ^^^^^^ expected `&_`, found `(&T, &U)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&_`
[INFO] [stdout]                   found tuple `(&T, &U)`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:92:29
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let mut iter_1 = v1.iter();
[INFO] [stdout]    |                          -- ^^^^^^ `Iterator::Item` is `&T` here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          this expression has type `Vec<T>`
[INFO] [stdout] 93 |         let mut iter_2 = v2.iter().cycle();
[INFO] [stdout] 94 |         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout]    |                ----------- `Iterator::Item` changed to `(&T, &U)` here
[INFO] [stdout] note: required by a bound in `cloned`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/iter/traits/iterator.rs:3559:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `map` exists for struct `Cloned<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:94:37
[INFO] [stdout]    |
[INFO] [stdout] 94 |         iter_1.zip(iter_2).cloned().map(|(item)| f(item)).collect()
[INFO] [stdout]    |                                     ^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>> as Iterator>::Item = &_`
[INFO] [stdout]            which is required by `Cloned<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>>>: Iterator`
[INFO] [stdout]            `Cloned<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>>>: Iterator`
[INFO] [stdout]            which is required by `&mut Cloned<std::iter::Zip<std::slice::Iter<'_, T>, Cycle<std::slice::Iter<'_, U>>>>: Iterator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `codegen::Velocity` doesn't implement `Debug`
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Debug, Default)]
[INFO] [stdout]    |          ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 24 |     velocities: Vec<Velocity>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `codegen::Velocity`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Debug` is implemented for `Vec<T, A>`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:4315:0
[INFO] [stdout] help: consider annotating `codegen::Velocity` with `#[derive(Debug)]`
[INFO] [stdout]   --> compiler/src/compiler/codegen.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 + #[derive(Debug)]
[INFO] [stdout] 14 | pub struct Velocity(u8);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `compose_exps` in this scope
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let f = compose_exps(es, f, ctx);
[INFO] [stdout]    |                 ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider using the method on `Self`
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let f = self.compose_exps(es, f, ctx);
[INFO] [stdout]    |                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `compose_exp` in this scope
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:58:34
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 Some(exp) => f = compose_exp(exp, f, ctx),
[INFO] [stdout]    |                                  ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider using the method on `Self`
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 Some(exp) => f = self.compose_exp(exp, f, ctx),
[INFO] [stdout]    |                                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `single` found for enum `Rule` in the current scope
[INFO] [stdout]   --> compiler/src/pest_parser.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(PestParser)]
[INFO] [stdout]    |          ---------- variant, associated function, or constant `single` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 38 |         Rule::single => Exp::Simple(parse_single(inner)?),
[INFO] [stdout]    |               ^^^^^^ variant, associated function, or constant not found in `Rule`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a variant with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 38 -         Rule::single => Exp::Simple(parse_single(inner)?),
[INFO] [stdout] 38 +         Rule::simple => Exp::Simple(parse_single(inner)?),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `compose_primitve` found for mutable reference `&mut Composer<'a>` in the current scope
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:93:47
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     let f: F<Exp, Exp> = self.compose_primitve(pre, ctx);
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `compose_primitive` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 93 |                     let f: F<Exp, Exp> = self.compose_primitive(pre, ctx);
[INFO] [stdout]    |                                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `compose_primitve` found for mutable reference `&mut Composer<'a>` in the current scope
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:97:47
[INFO] [stdout]    |
[INFO] [stdout] 97 |                     let f: F<Exp, Exp> = self.compose_primitve(suf, ctx);
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `compose_primitive` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 97 |                     let f: F<Exp, Exp> = self.compose_primitive(suf, ctx);
[INFO] [stdout]    |                                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `compose_duration` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:131:47
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 let f: F<'static, Exp, Exp> = compose_duration(d, ctx);
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider using the method on `Self`
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 let f: F<'static, Exp, Exp> = self.compose_duration(d, ctx);
[INFO] [stdout]     |                                               +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `0` on type `codegen::Ctx`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:148:50
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 let tempo: Upb = self.tempos[ctx.0];
[INFO] [stdout]     |                                                  ^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `from_str` found for type `f64` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:227:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |     Ok(f64::from_str(rule.as_span().as_str()).unwrap())
[INFO] [stdout]     |             ^^^^^^^^ associated function or constant not found in `f64`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is an associated function `from_str_radix` with a similar name
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/lib.rs:95:5
[INFO] [stdout]     |
[INFO] [stdout]  95 |     fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: trait `FromStr` which provides `from_str` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use std::str::FromStr;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `zip` found for struct `Vec<ast::Exp>` in the current scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:185:69
[INFO] [stdout]     |
[INFO] [stdout] 185 | ...                   Exp::Compound(Compound::Parens(exps.zip(gs)))
[INFO] [stdout]     |                                                           ^^^ `Vec<ast::Exp>` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout] help: call `.into_iter()` first
[INFO] [stdout]     |
[INFO] [stdout] 185 |                                 Exp::Compound(Compound::Parens(exps.into_iter().zip(gs)))
[INFO] [stdout]     |                                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:219:41
[INFO] [stdout]     |
[INFO] [stdout] 219 |   ...                   )))) => {
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 220 | | ...                       self.pc(ctx, Pc(int as u8));
[INFO] [stdout] 221 | | ...                   }
[INFO] [stdout]     | |_______________________^ expected `Exp`, found `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0618]: expected function, found `ast::Compound`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:224:29
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         compound @ Compound::Braces(exps)
[INFO] [stdout]     |                         --------------------------------- `compound` has type `ast::Compound`
[INFO] [stdout] ...
[INFO] [stdout] 224 |                             compound(transform_exps(exps, g))
[INFO] [stdout]     |                             ^^^^^^^^-------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             call expression requires function
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/pest_parser.rs:9:10
[INFO] [stdout]     |
[INFO] [stdout]   9 | #[derive(PestParser)]
[INFO] [stdout]     |          ---------- this function of the same name is available here, but it's shadowed by the local binding
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Freq` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:241:34
[INFO] [stdout]     |
[INFO] [stdout] 241 |         Rule::freq => Primitive::Freq,
[INFO] [stdout]     |                                  ^^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Freq` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `g` in this scope
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:252:55
[INFO] [stdout]     |
[INFO] [stdout] 252 |                         compound(transform_exps(exps, g(exp)))
[INFO] [stdout]     |                                                       ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0618]: expected function, found `ast::Compound`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:252:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |                     compound @ Compound::Parens(exps)
[INFO] [stdout]     |                     --------------------------------- `compound` has type `ast::Compound`
[INFO] [stdout] ...
[INFO] [stdout] 252 |                         compound(transform_exps(exps, g(exp)))
[INFO] [stdout]     |                         ^^^^^^^^------------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         call expression requires function
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/pest_parser.rs:9:10
[INFO] [stdout]     |
[INFO] [stdout]   9 | #[derive(PestParser)]
[INFO] [stdout]     |          ---------- this function of the same name is available here, but it's shadowed by the local binding
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:274:54
[INFO] [stdout]     |
[INFO] [stdout] 274 |           let f: F<'static, Exp, Exp> = Box::new(|exp| {
[INFO] [stdout]     |  ______________________________________________________^
[INFO] [stdout] 275 | |             let ident = node.0;
[INFO] [stdout] 276 | |         });
[INFO] [stdout]     | |_________^ expected `Exp`, found `()`
[INFO] [stdout]     |
[INFO] [stdout] help: consider returning the local binding `exp`
[INFO] [stdout]     |
[INFO] [stdout] 275 ~             let ident = node.0;
[INFO] [stdout] 276 +             exp
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:273:59
[INFO] [stdout]     |
[INFO] [stdout] 273 |     fn compose_ident(&mut self, node: Ident, ctx: Ctx) -> F<'static, Exp, Exp> {
[INFO] [stdout]     |        -------------                                      ^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn FnMut(Exp) -> Exp>`, found `()`
[INFO] [stdout]     |        |
[INFO] [stdout]     |        implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn FnMut(ast::Exp) -> ast::Exp + 'static)>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] help: consider returning the local binding `f`
[INFO] [stdout]     |
[INFO] [stdout] 276 ~         });
[INFO] [stdout] 277 +         f
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Bpm` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:242:33
[INFO] [stdout]     |
[INFO] [stdout] 242 |         Rule::bpm => Primitive::Bpm,
[INFO] [stdout]     |                                 ^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Bpm` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot subtract `u64` from `ast::Exp`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:301:52
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 Sign::Minus => Box::new(move |n| n - val),
[INFO] [stdout]     |                                                  - ^ --- u64
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  ast::Exp
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Sub<u64>` might be missing for `ast::Exp`
[INFO] [stdout]    --> compiler/src/compiler/ast.rs:24:1
[INFO] [stdout]     |
[INFO] [stdout]  24 | pub enum Exp {
[INFO] [stdout]     | ^^^^^^^^^^^^ must implement `Sub<u64>`
[INFO] [stdout] note: the trait `Sub` must be implemented
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:188:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Reg` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:243:33
[INFO] [stdout]     |
[INFO] [stdout] 243 |         Rule::reg => Primitive::Reg,
[INFO] [stdout]     |                                 ^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Reg` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:304:53
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 Sign::Plus => Box::new(move |n| n + val),
[INFO] [stdout]     |                                                 -   ^^^ expected `Exp`, found `f64`
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 expected because this is `ast::Exp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot subtract `f64` from `ast::Exp`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:305:52
[INFO] [stdout]     |
[INFO] [stdout] 305 |                 Sign::Minus => Box::new(move |n| n - val),
[INFO] [stdout]     |                                                  - ^ --- f64
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  ast::Exp
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Sub<f64>` might be missing for `ast::Exp`
[INFO] [stdout]    --> compiler/src/compiler/ast.rs:24:1
[INFO] [stdout]     |
[INFO] [stdout]  24 | pub enum Exp {
[INFO] [stdout]     | ^^^^^^^^^^^^ must implement `Sub<f64>`
[INFO] [stdout] note: the trait `Sub` must be implemented
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/ops/arith.rs:188:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Dur` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:244:33
[INFO] [stdout]     |
[INFO] [stdout] 244 |         Rule::dur => Primitive::Dur,
[INFO] [stdout]     |                                 ^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Dur` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `std::slice::Iter<'_, u8>` cannot be dereferenced
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:348:62
[INFO] [stdout]     |
[INFO] [stdout] 348 |             self.instruments[id] = Instrument(Vec::from_iter(*instrument.as_bytes().iter()));
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[Vec<codegen::Ctx>]` cannot be indexed by `codegen::Ctx`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:375:23
[INFO] [stdout]     |
[INFO] [stdout] 375 |         self.children[parent].push(idx);
[INFO] [stdout]     |                       ^^^^^^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `SliceIndex<[Vec<codegen::Ctx>]>` is not implemented for `codegen::Ctx`
[INFO] [stdout]    --> compiler/src/compiler/codegen.rs:26:1
[INFO] [stdout]     |
[INFO] [stdout]  26 | pub enum Ctx {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Vec<Vec<codegen::Ctx>>` to implement `std::ops::Index<codegen::Ctx>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0600]: cannot apply unary operator `-` to type `u8`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:379:26
[INFO] [stdout]     |
[INFO] [stdout] 379 |         self.pcs.push(Pc(-1));
[INFO] [stdout]     |                          ^^ cannot apply unary operator `-`
[INFO] [stdout]     |
[INFO] [stdout]     = note: unsigned values cannot be negated
[INFO] [stdout] help: you may have meant the maximum value of `u8`
[INFO] [stdout]     |
[INFO] [stdout] 379 -         self.pcs.push(Pc(-1));
[INFO] [stdout] 379 +         self.pcs.push(Pc(u8::MAX));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Rest` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:245:34
[INFO] [stdout]     |
[INFO] [stdout] 245 |         Rule::rest => Primitive::Rest,
[INFO] [stdout]     |                                  ^^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Rest` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Amp` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:246:33
[INFO] [stdout]     |
[INFO] [stdout] 246 |         Rule::amp => Primitive::Amp,
[INFO] [stdout]     |                                 ^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Amp` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:379:23
[INFO] [stdout]     |
[INFO] [stdout] 379 |         self.pcs.push(Pc(-1));
[INFO] [stdout]     |                  ---- ^^^^^^ expected `Vec<Pc>`, found `Pc`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<codegen::Pc>`
[INFO] [stdout]                found struct `codegen::Pc`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:1003:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot initialize a tuple struct which contains private fields
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:383:30
[INFO] [stdout]     |
[INFO] [stdout] 383 |         self.velocities.push(Velocity(0));
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: constructor is not visible here due to private fields
[INFO] [stdout]    --> compiler/src/compiler/codegen.rs:13:21
[INFO] [stdout]     |
[INFO] [stdout]  13 | pub struct Velocity(u8);
[INFO] [stdout]     |                     ^^ private field
[INFO] [stdout] help: consider making the field publicly accessible
[INFO] [stdout]    --> compiler/src/compiler/codegen.rs:13:21
[INFO] [stdout]     |
[INFO] [stdout]  13 | pub struct Velocity(pub u8);
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Pc` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:247:32
[INFO] [stdout]     |
[INFO] [stdout] 247 |         Rule::pc => Primitive::Pc,
[INFO] [stdout]     |                                ^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Pc` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<u8>` cannot be built from an iterator over elements of type `&u8`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:385:56
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .push(Instrument("Piano".as_bytes().iter().collect()));
[INFO] [stdout]     |                                                        ^^^^^^^ value of type `Vec<u8>` cannot be built from `std::iter::Iterator<Item=&u8>`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `FromIterator<&_>` is not implemented for `Vec<u8>`
[INFO] [stdout]       but trait `FromIterator<_>` is implemented for it
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:3935:0
[INFO] [stdout]     = help: for that trait implementation, expected `u8`, found `&u8`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/iter/traits/iterator.rs:2077:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `parse` found for struct `pest_parser::Parser` in the current scope
[INFO] [stdout]   --> compiler/src/main.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let pairs = Parser::parse(Rule::program, &src)?.next().unwrap();
[INFO] [stdout]    |                         ^^^^^ associated function or constant not found in `pest_parser::Parser`
[INFO] [stdout]    |
[INFO] [stdout]   ::: compiler/src/pest_parser.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Parser;
[INFO] [stdout]    | ----------------- associated function or constant `parse` not found for this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Parser` which provides `parse` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use pest::Parser;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:73:21
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 let mut f: F<'static, Exp, Exp> = self.compose_simple(s, ctx);
[INFO] [stdout]    |                     ----^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `abss`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:122:29
[INFO] [stdout]     |
[INFO] [stdout] 122 |             Compound::Ratio(abss) => {
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_abss`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout]  31 |   impl<'a> Composer<'a> {
[INFO] [stdout]     |        -- lifetime `'a` defined here
[INFO] [stdout] ...
[INFO] [stdout] 200 | /         match node {
[INFO] [stdout] 201 | |             Primitive::Prefix(p) => self.compose_prefix(p, ctx),
[INFO] [stdout] 202 | |
[INFO] [stdout] 203 | |             Primitive::Suffix(suf) => Box::new(move |exp| self.compose_suffix(suf, ctx)(exp)),
[INFO] [stdout] 204 | |         }
[INFO] [stdout]     | |_________^ returning this value requires that `'a` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |       fn compose_primitive(&mut self, node: Primitive, ctx: Ctx) -> F<'static, Exp, Exp> {
[INFO] [stdout]     |                            - let's call the lifetime of this reference `'1`
[INFO] [stdout] 200 | /         match node {
[INFO] [stdout] 201 | |             Primitive::Prefix(p) => self.compose_prefix(p, ctx),
[INFO] [stdout] 202 | |
[INFO] [stdout] 203 | |             Primitive::Suffix(suf) => Box::new(move |exp| self.compose_suffix(suf, ctx)(exp)),
[INFO] [stdout] 204 | |         }
[INFO] [stdout]     | |_________^ returning this value requires that `'1` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] help: replace `'a` with `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:262:40
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn compose_op(&mut self, node: Op, ctx: Ctx) -> F<'static, Exp, Exp> {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:288:31
[INFO] [stdout]     |
[INFO] [stdout] 288 |             Absolute::Integer(mut i) => Box::new(move |exp| match exp {
[INFO] [stdout]     |                               ----^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:293:29
[INFO] [stdout]     |
[INFO] [stdout] 293 |             Absolute::Float(mut f) => Box::new(move |exp| todo!()),
[INFO] [stdout]     |                             ----^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exp`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:293:54
[INFO] [stdout]     |
[INFO] [stdout] 293 |             Absolute::Float(mut f) => Box::new(move |exp| todo!()),
[INFO] [stdout]     |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_exp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:289:29
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 Exp::Simple(s) => todo!(),
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:290:31
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 Exp::Compound(c) => todo!(),
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:286:52
[INFO] [stdout]     |
[INFO] [stdout] 286 |     fn compose_absolute(&mut self, node: Absolute, ctx: Ctx) -> F<'static, Exp, Exp> {
[INFO] [stdout]     |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:288:31
[INFO] [stdout]     |
[INFO] [stdout] 288 |             Absolute::Integer(mut i) => Box::new(move |exp| match exp {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:293:29
[INFO] [stdout]     |
[INFO] [stdout] 293 |             Absolute::Float(mut f) => Box::new(move |exp| todo!()),
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0621]: explicit lifetime required in the type of `instruction`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |             self.instructions[id].push(instruction);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'a` required
[INFO] [stdout]     |
[INFO] [stdout] help: add explicit lifetime `'a` to the type of `instruction`
[INFO] [stdout]     |
[INFO] [stdout] 358 -     fn add_instruction(&mut self, idx: Ctx, instruction: Instruction) {
[INFO] [stdout] 358 +     fn add_instruction(&mut self, idx: Ctx, instruction: codegen::Instruction<'a>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0621]: explicit lifetime required in the type of `event`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:366:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |             self.events[id].push(event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'a` required
[INFO] [stdout]     |
[INFO] [stdout] help: add explicit lifetime `'a` to the type of `event`
[INFO] [stdout]     |
[INFO] [stdout] 364 -     fn add_event(&mut self, idx: Ctx, event: TrackEvent) {
[INFO] [stdout] 364 +     fn add_event(&mut self, idx: Ctx, event: midly::TrackEvent<'a>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `single` found for enum `Rule` in the current scope
[INFO] [stdout]   --> compiler/src/pest_parser.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(PestParser)]
[INFO] [stdout]    |          ---------- variant, associated function, or constant `single` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 38 |         Rule::single => Exp::Simple(parse_single(inner)?),
[INFO] [stdout]    |               ^^^^^^ variant, associated function, or constant not found in `Rule`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a variant with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 38 -         Rule::single => Exp::Simple(parse_single(inner)?),
[INFO] [stdout] 38 +         Rule::simple => Exp::Simple(parse_single(inner)?),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `from_str` found for type `f64` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:227:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |     Ok(f64::from_str(rule.as_span().as_str()).unwrap())
[INFO] [stdout]     |             ^^^^^^^^ associated function or constant not found in `f64`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is an associated function `from_str_radix` with a similar name
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/lib.rs:95:5
[INFO] [stdout]     |
[INFO] [stdout]  95 |     fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: trait `FromStr` which provides `from_str` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use std::str::FromStr;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Freq` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:241:34
[INFO] [stdout]     |
[INFO] [stdout] 241 |         Rule::freq => Primitive::Freq,
[INFO] [stdout]     |                                  ^^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Freq` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Bpm` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:242:33
[INFO] [stdout]     |
[INFO] [stdout] 242 |         Rule::bpm => Primitive::Bpm,
[INFO] [stdout]     |                                 ^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Bpm` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Reg` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:243:33
[INFO] [stdout]     |
[INFO] [stdout] 243 |         Rule::reg => Primitive::Reg,
[INFO] [stdout]     |                                 ^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Reg` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Dur` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:244:33
[INFO] [stdout]     |
[INFO] [stdout] 244 |         Rule::dur => Primitive::Dur,
[INFO] [stdout]     |                                 ^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Dur` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Rest` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:245:34
[INFO] [stdout]     |
[INFO] [stdout] 245 |         Rule::rest => Primitive::Rest,
[INFO] [stdout]     |                                  ^^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Rest` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Amp` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:246:33
[INFO] [stdout]     |
[INFO] [stdout] 246 |         Rule::amp => Primitive::Amp,
[INFO] [stdout]     |                                 ^^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Amp` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Pc` found for enum `ast::Primitive` in the current scope
[INFO] [stdout]    --> compiler/src/pest_parser.rs:247:32
[INFO] [stdout]     |
[INFO] [stdout] 247 |         Rule::pc => Primitive::Pc,
[INFO] [stdout]     |                                ^^ variant, associated function, or constant not found in `ast::Primitive`
[INFO] [stdout]     |
[INFO] [stdout]    ::: compiler/src/compiler/ast.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub enum Primitive {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `Pc` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `parse` found for struct `pest_parser::Parser` in the current scope
[INFO] [stdout]   --> compiler/src/main.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let pairs = Parser::parse(Rule::program, &src)?.next().unwrap();
[INFO] [stdout]    |                         ^^^^^ associated function or constant not found in `pest_parser::Parser`
[INFO] [stdout]    |
[INFO] [stdout]   ::: compiler/src/pest_parser.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Parser;
[INFO] [stdout]    | ----------------- associated function or constant `parse` not found for this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Parser` which provides `parse` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use pest::Parser;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> compiler/src/pest_parser.rs:16:26
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn parse_program<'a>(mut pair: Pair<'a, Rule>) -> Result<Program> {
[INFO] [stdout]    |                          ----^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> compiler/src/pest_parser.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_exps(mut rules: Rules) -> Result<Vec<Exp>> {
[INFO] [stdout]    |               ----^^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> compiler/src/pest_parser.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn parse_seconds(mut rules: Rules) -> Result<Absolute> {
[INFO] [stdout]     |                  ----^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule`
[INFO] [stdout]    --> compiler/src/pest_parser.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let rule = next.as_rule();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule`
[INFO] [stdout]    --> compiler/src/pest_parser.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let rule = next.as_rule();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> compiler/src/compiler/composer.rs:73:21
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 let mut f: F<'static, Exp, Exp> = self.compose_simple(s, ctx);
[INFO] [stdout]    |                     ----^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `abss`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:122:29
[INFO] [stdout]     |
[INFO] [stdout] 122 |             Compound::Ratio(abss) => {
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_abss`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout]  31 |   impl<'a> Composer<'a> {
[INFO] [stdout]     |        -- lifetime `'a` defined here
[INFO] [stdout] ...
[INFO] [stdout] 200 | /         match node {
[INFO] [stdout] 201 | |             Primitive::Prefix(p) => self.compose_prefix(p, ctx),
[INFO] [stdout] 202 | |
[INFO] [stdout] 203 | |             Primitive::Suffix(suf) => Box::new(move |exp| self.compose_suffix(suf, ctx)(exp)),
[INFO] [stdout] 204 | |         }
[INFO] [stdout]     | |_________^ returning this value requires that `'a` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |       fn compose_primitive(&mut self, node: Primitive, ctx: Ctx) -> F<'static, Exp, Exp> {
[INFO] [stdout]     |                            - let's call the lifetime of this reference `'1`
[INFO] [stdout] 200 | /         match node {
[INFO] [stdout] 201 | |             Primitive::Prefix(p) => self.compose_prefix(p, ctx),
[INFO] [stdout] 202 | |
[INFO] [stdout] 203 | |             Primitive::Suffix(suf) => Box::new(move |exp| self.compose_suffix(suf, ctx)(exp)),
[INFO] [stdout] 204 | |         }
[INFO] [stdout]     | |_________^ returning this value requires that `'1` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] help: replace `'a` with `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:262:40
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn compose_op(&mut self, node: Op, ctx: Ctx) -> F<'static, Exp, Exp> {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:288:31
[INFO] [stdout]     |
[INFO] [stdout] 288 |             Absolute::Integer(mut i) => Box::new(move |exp| match exp {
[INFO] [stdout]     |                               ----^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:293:29
[INFO] [stdout]     |
[INFO] [stdout] 293 |             Absolute::Float(mut f) => Box::new(move |exp| todo!()),
[INFO] [stdout]     |                             ----^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exp`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:293:54
[INFO] [stdout]     |
[INFO] [stdout] 293 |             Absolute::Float(mut f) => Box::new(move |exp| todo!()),
[INFO] [stdout]     |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_exp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:289:29
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 Exp::Simple(s) => todo!(),
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> compiler/src/pest_parser.rs:211:16
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn parse_ratio(mut rules: Rules) -> Result<Vec<Absolute>> {
[INFO] [stdout]     |                ----^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:290:31
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 Exp::Compound(c) => todo!(),
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:286:52
[INFO] [stdout]     |
[INFO] [stdout] 286 |     fn compose_absolute(&mut self, node: Absolute, ctx: Ctx) -> F<'static, Exp, Exp> {
[INFO] [stdout]     |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:288:31
[INFO] [stdout]     |
[INFO] [stdout] 288 |             Absolute::Integer(mut i) => Box::new(move |exp| match exp {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:293:29
[INFO] [stdout]     |
[INFO] [stdout] 293 |             Absolute::Float(mut f) => Box::new(move |exp| todo!()),
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0621]: explicit lifetime required in the type of `instruction`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |             self.instructions[id].push(instruction);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'a` required
[INFO] [stdout]     |
[INFO] [stdout] help: add explicit lifetime `'a` to the type of `instruction`
[INFO] [stdout]     |
[INFO] [stdout] 358 -     fn add_instruction(&mut self, idx: Ctx, instruction: Instruction) {
[INFO] [stdout] 358 +     fn add_instruction(&mut self, idx: Ctx, instruction: codegen::Instruction<'a>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0621]: explicit lifetime required in the type of `event`
[INFO] [stdout]    --> compiler/src/compiler/composer.rs:366:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |             self.events[id].push(event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'a` required
[INFO] [stdout]     |
[INFO] [stdout] help: add explicit lifetime `'a` to the type of `event`
[INFO] [stdout]     |
[INFO] [stdout] 364 -     fn add_event(&mut self, idx: Ctx, event: TrackEvent) {
[INFO] [stdout] 364 +     fn add_event(&mut self, idx: Ctx, event: midly::TrackEvent<'a>) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Rule::EOI`, `Rule::program`, `Rule::exps` and 51 more not covered
[INFO] [stdout]    --> compiler/src/pest_parser.rs:255:14
[INFO] [stdout]     |
[INFO] [stdout] 255 |     Ok(match rule {
[INFO] [stdout]     |              ^^^^ patterns `Rule::EOI`, `Rule::program`, `Rule::exps` and 51 more not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Rule` defined here
[INFO] [stdout]    --> compiler/src/pest_parser.rs:9:10
[INFO] [stdout]     |
[INFO] [stdout]   9 | #[derive(PestParser)]
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          not covered
[INFO] [stdout]     = note: the matched value is of type `Rule`
[INFO] [stdout]     = note: this error originates in the derive macro `PestParser` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 259 ~         Rule::rest => Prefix::Rest,
[INFO] [stdout] 260 ~         _ => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Rule::EOI`, `Rule::program`, `Rule::exps` and 52 more not covered
[INFO] [stdout]    --> compiler/src/pest_parser.rs:266:14
[INFO] [stdout]     |
[INFO] [stdout] 266 |     Ok(match rule {
[INFO] [stdout]     |              ^^^^ patterns `Rule::EOI`, `Rule::program`, `Rule::exps` and 52 more not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Rule` defined here
[INFO] [stdout]    --> compiler/src/pest_parser.rs:9:10
[INFO] [stdout]     |
[INFO] [stdout]   9 | #[derive(PestParser)]
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          not covered
[INFO] [stdout]     = note: the matched value is of type `Rule`
[INFO] [stdout]     = note: this error originates in the derive macro `PestParser` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 269 ~         Rule::freq => Suffix::Freq,
[INFO] [stdout] 270 ~         _ => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0204, E0271, E0277, E0308, E0369, E0423, E0425, E0599...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `compiler` (bin "compiler" test) due to 52 previous errors; 27 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> compiler/src/pest_parser.rs:16:26
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn parse_program<'a>(mut pair: Pair<'a, Rule>) -> Result<Program> {
[INFO] [stdout]    |                          ----^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> compiler/src/pest_parser.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_exps(mut rules: Rules) -> Result<Vec<Exp>> {
[INFO] [stdout]    |               ----^^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> compiler/src/pest_parser.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn parse_seconds(mut rules: Rules) -> Result<Absolute> {
[INFO] [stdout]     |                  ----^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule`
[INFO] [stdout]    --> compiler/src/pest_parser.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let rule = next.as_rule();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule`
[INFO] [stdout]    --> compiler/src/pest_parser.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let rule = next.as_rule();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> compiler/src/pest_parser.rs:211:16
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn parse_ratio(mut rules: Rules) -> Result<Vec<Absolute>> {
[INFO] [stdout]     |                ----^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Rule::EOI`, `Rule::program`, `Rule::exps` and 51 more not covered
[INFO] [stdout]    --> compiler/src/pest_parser.rs:255:14
[INFO] [stdout]     |
[INFO] [stdout] 255 |     Ok(match rule {
[INFO] [stdout]     |              ^^^^ patterns `Rule::EOI`, `Rule::program`, `Rule::exps` and 51 more not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Rule` defined here
[INFO] [stdout]    --> compiler/src/pest_parser.rs:9:10
[INFO] [stdout]     |
[INFO] [stdout]   9 | #[derive(PestParser)]
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          not covered
[INFO] [stdout]     = note: the matched value is of type `Rule`
[INFO] [stdout]     = note: this error originates in the derive macro `PestParser` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 259 ~         Rule::rest => Prefix::Rest,
[INFO] [stdout] 260 ~         _ => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Rule::EOI`, `Rule::program`, `Rule::exps` and 52 more not covered
[INFO] [stdout]    --> compiler/src/pest_parser.rs:266:14
[INFO] [stdout]     |
[INFO] [stdout] 266 |     Ok(match rule {
[INFO] [stdout]     |              ^^^^ patterns `Rule::EOI`, `Rule::program`, `Rule::exps` and 52 more not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Rule` defined here
[INFO] [stdout]    --> compiler/src/pest_parser.rs:9:10
[INFO] [stdout]     |
[INFO] [stdout]   9 | #[derive(PestParser)]
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          not covered
[INFO] [stdout]     = note: the matched value is of type `Rule`
[INFO] [stdout]     = note: this error originates in the derive macro `PestParser` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 269 ~         Rule::freq => Suffix::Freq,
[INFO] [stdout] 270 ~         _ => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0204, E0271, E0277, E0308, E0369, E0423, E0425, E0599...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `compiler` (bin "compiler") due to 52 previous errors; 27 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "e6e8b606bcb448b378a61ae879db4ed0c0c8eacc500cc7550615539ce2439744", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e6e8b606bcb448b378a61ae879db4ed0c0c8eacc500cc7550615539ce2439744", kill_on_drop: false }`
[INFO] [stdout] e6e8b606bcb448b378a61ae879db4ed0c0c8eacc500cc7550615539ce2439744
